%
%       This document is free documentation; you can redistribute it and/or modify
%       it under the terms of the GNU Free Documentation License as published by
%       the Free Software Foundation; either version 1.2 of the License, or
%       any later version.
%       
%       This doc is distributed in the hope that it will be useful,
%       but WITHOUT ANY WARRANTY; without even the implied warranty of
%       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
%       GNU Free Documentation License for more details.
%       
%       You should have received a copy of the GNU Free Documentation
%       License along with this document ; if not, write to the Free
%       Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
%       Boston, MA 02110-1301, USA.
% 
\section{Speeding Up Your Site}\label{sec:SpeedingUpYourSite}
 \subsection{Low number of files}
El sitio de MercadoLibre no tiene muchos archivos: algunas imágenes como
el logotipo, fondos de cabeceras, partes de recuadros y botones gráficos, y en
promedio menos de una publicidad Flash por página.

\subsection{Fast-loading images}
De las imágenes básicas del sitio, la más grande ocupa 17.8KB. Hoy en
día las conexiones de banda ancha son muy comunes, pero igual hay
usuarios de internet con conexiones dial-up, con una velocidad
promedio de descarga de 4KB, en la cual dicha imagen tardaría casi 4
segundos y medio. Teniendo en cuenta que dicha imagen es una cabecera,
no tiene gran importancia la demora, aunque por otro lado no tiene
texto alternativo. A esa imagen le sigue otra (en tamaño) de 13KB
(poco más de 3 segundos; también una cabecera). Las imágenes no
básicas, como ser las publicidades, pueden ser más grandes, pero su
retraso en la carga no afecta a la navegación básica.
% podriamos ''wgetear'' las imagenes y despues sumar el tamaño de cada
% una \ldots  -Pablo Nicolas Diaz 30/04/09 19:41
Además se realizo una medición del tamaño de los recursos (sean imagenes o
contenido multimedia, pero una inspección visual de la lista de
recursos solo demostro que lo unico que habian eran imagenes y un solo
archivo swf), se extrajo la lista de recursos utilizando Firefox (en
el menú Herramientas -> Información de la Página ->Medios y se copio en
un archivo la lista de recursos ) y se las volco en un archivo llamado
FILES, del cual se muestran las primeras lineas 

  \scriptsize{
\begin{verbatim}
nicolas ~/HCI/imgs $ head FILES
http://www.mercadolibre.com.ar/org-img/logo_ml/logo_site.gif
http://www.mercadolibre.com.ar/org-img/menu/MLA/mnu_dflt.gif
http://www.mercadolibre.com.ar/org-img/homed/bg_buscador_big.png
http://www.mercadolibre.com.ar/org-img/homed/bot_irh.gif
http://www.mercadolibre.com.ar/org-img/homed/hcat_mla.gif
http://www.mercadolibre.com.ar/org-img/homed/esp_top.gif
http://www.mercadolibre.com.ar/org-img/homed/esp_mid.gif
http://www.mercadolibre.com.ar/org-img/home/redcar.gif
http://www.mercadolibre.com/org-img/PARPERFEITO/corazon3.gif
http://www.mercadolibre.com.ar/org-img/homed/esp_bot.gif
\end{verbatim}
  }

luego se creo el siguiente script de bash

\lstinputlisting[language=bash,caption=Script para descargar
imágenes,label=bashScript]{contar_imgs.sh}

Este pequeño script usa ``wget'' para bajar dirección pasada como
argumento y luego acumula su tamaño en bytes en la variable X e
imprime el resultado.

y se lo invoca de la siguiente manera :
\begin{center}
\scriptsize{
\begin{verbatim}
nicolas ~/HCI/imgs $ time {xargs --arg-file=FILES ./contar_imgs.sh }
--2009-04-30 21:11:24-- http://www.mercadolibre.com.ar/org-img/logo_ml/logo_site.gif
Resolviendo www.mercadolibre.com.ar\ldots 208.37.10.11, 64.58.88.115, 64.14.123.180
Connecting to www.mercadolibre.com.ar|208.37.10.11|:80\ldots conectado.
Petición HTTP enviada, esperando respuesta\ldots 200 OK
o
Longitud: 3201 (3,1K) [image/gif]
Saving to: 'STDOUT'
L. SPEEDING UP YOUR SITE
29
100%[========================================================================>] 3.201
\ldots. más salida \ldots
a
2009-04-30 21:12:05 (19,5 KB/s) - '-' saved [3336/3336]
--2009-04-30 21:12:05-- http://smartad.mercadolibre.com.ar/jm/ml.track.me?p=Y&k1=XBIG
Resolviendo smartad.mercadolibre.com.ar\ldots 208.37.10.19, 64.14.123.173, 64.58.88.120
Connecting to smartad.mercadolibre.com.ar|208.37.10.19|:80\ldots conectado.
Petición HTTP enviada, esperando respuesta\ldots 200 OK
o
Longitud: 43 [image/gif]
Saving to: 'STDOUT'
100%[========================================================================>] 43
2009-04-30 21:12:06 (2,05 MB/s) - '-' saved [43/43]

129038 <-tamaño en bytes

real   0m42.153s
user   0m1.013s
sys    0m0.410s

nicolas ~/HCI/imgs$
\end{verbatim} }
\end{center}

% TODO: arreglar que se escapa : DONE

El cual corresponde a unos 126 Kbytes descargados en aproximadamente
42 segundos en un acceso a internet via Cablemodem de 1mb de ancho de
banda.  No todas las imágenes tienen el tamaño en pixeles, pero
aquellas que no lo tienen, o son muy chicas para incluir en la
estructura de la página, o están dentro de una tabla u otro contenedor
con un tamaño fijo.

\subsection{Separate Tables}

En todas las páginas la cabecera está armada en una tabla distinta al
resto de la página, igual que el pie.

\subsection{HTML power}

En general, las páginas del sitio tienen un buen balance entre
imágenes y código HTML para hacerlas vistosas.

 \subsection{Reusable images}

No hay mucho reuso de las imagenes, ya que son pocas y no son usadas
muchas veces.

\subsection{Fast loading content}

Aparte de lo mencionado en los patrones de
\ref{sec:SpeedingUpYourSite}, en la página principal terminan de
cargarse los distintos elementos antes de la publicidad del medio y
las promociones del extremo derecho, lo cual es una forma de acelerar
la carga ya que la publicidad no es tan importante para el uso del
sitio. No cuenta con otras formas de carga de páginas que amortigüen
la espera, tales como carga por demanda (donde distintas partes de la
página se van cargando de acuerdo a los pasos que uno sigue en dicha
página) o estado de progreso (ya sea tanto estático, como un letreto
anunciando ``Espere un momento\ldots'', o una barra de progreso tipo
termómetro, que vaya mostrando en forma aproximada lo que queda por
cargarse de la página); por otro lado, las páginas no tienen gran
complejidad que necesite de estos métodos.

%%% Local Variables: 
%%% mode: latex
%%% TeX-master: "../informe"
%%% End: 
